package com.molichuxing.gateway.api.services;

import java.util.List;
import java.util.Map;

import com.molichuxing.framework.dto.Paged;
import com.molichuxing.framework.result.ResponseResult;
import com.molichuxing.gateway.bff.stock.entity.request.modify.StockCarModifyVo;
import com.molichuxing.gateway.bff.stock.entity.response.EntrepotStorageVo;
import com.molichuxing.gateway.bff.stock.entity.response.FenceBaseVo;
import com.molichuxing.gateway.bff.stock.entity.response.StockCarDetailVo;
import com.molichuxing.gateway.bff.stock.entity.response.StockCarVo;
import com.molichuxing.gateway.bff.stock.entity.response.StockRecordBaseVo;

/**
 * 
 * @author liyg
 * 库存车辆web接口
 * 2019-09-09
 *
 */
public interface StockApiService {

	/**
	 * 获取库存列表
	 * @param
	 * @return
	 */
	ResponseResult<Paged<StockCarVo>> getStockCarList(Map<String, Object> map);
	
	/**
	 * 获取库存车辆出库详情
	 * @param carId
	 * @return
	 */
	ResponseResult<StockCarVo> getStockCar(Integer carId);
	
	/**
	 * 车辆调拨信息
	 * @param modifyVo
	 * @return
	 */
	ResponseResult<Boolean> modifyAllotStock(StockCarModifyVo modifyVo);

	/**
	 * 还车
	 * @param modifyVo
	 * @return
	 */
	ResponseResult<Boolean> modifyReturn(StockCarModifyVo modifyVo);

	/**
	 * 获取到期还车列表（待还车 和 回库中）
	 * @param map
	 * @return
	 */
	ResponseResult<Paged<StockCarDetailVo>> getReturnList(Map<String, Object> map);

	/**
	 * 获取到期还车列表（已回库）
	 * @param map
	 * @return
	 */
	ResponseResult<Paged<StockCarDetailVo>> getReturnRecordList(Map<String, Object> map);
	
	/**
	 * 获取中转库下拉列表
	 * @return
	 */
	ResponseResult<List<EntrepotStorageVo>> getList();

	/**
	 *根据车辆id获取库存历史流转记录
	 * @param
	 * @return
	 */
	ResponseResult<List<StockRecordBaseVo>> getListByCarId(Integer carId);
	
	/**
	 * 根据门店或者中转库  id 查询 围栏数据
	 * @param map
	 * @return
	 */
	ResponseResult<List<FenceBaseVo>> getEntrepotOrStoreFence(Map<String, Object> map);

}
